package com.zjsru.oneDay202212;

import java.util.HashSet;
import java.util.Set;

/**
 * @Author: CookLee
 * @Date: 2022/12/6
 * 字符串中不同整数的数目
 *
 * 输入：word = "a123bc34d8ef34"
 * 输出：3
 * 解释：不同的整数有 "123"、"34" 和 "8" 。注意，"34" 只计数一次。
 *
 * 输入：word = "a1b01c001"
 * 输出：1
 * 解释："1"、"01" 和 "001" 视为同一个整数的十进制表示，因为在比较十进制值时会忽略前导零的存在。
 */
public class NumDifferentIntegers {
    
    /**
     * 模拟
     */
    public int numDifferentIntegers(String word) {
        Set<String> set = new HashSet<>();
        for (int i = 0; i < word.length(); i++) {
            if (word.charAt(i) <= '9') {
                int j = i;
                while (j < word.length() && word.charAt(j) <= '9') {
                    j++;
                }
                //保证j走在前面,并且开头不是0
                while (i < j && word.charAt(i) == '0') {
                    i++;
                }
                set.add(word.substring(i, j));
                i = j;
            }
        }
        return set.size();
    }
    
    public static void main(String[] args) {
        NumDifferentIntegers numDifferentIntegers = new NumDifferentIntegers();
        String word = "gi851a851q8510v";
        System.out.println(numDifferentIntegers.numDifferentIntegers(word));
    }
}
